let express = require("express");
let { Banner } = require("../model/index");
// ****1-创建一个路由中间件，来管理 文章相关的路由

let router = express.Router();

// ****2-在文章路由中间件 处理 文章相关的路由操作

// 1-获取所有文章，pagenum pagesize 分页，返回 接口 参数值
// get /articles?pagenum=1
router.get("/", async (req, res) => {
  let pagesize = req.query.pagesize || 10;
  let pagenum = req.query.pagenum || 1;
  let skip = (pagenum - 1) * pagesize;
  let limit = pagesize;
  let r = await Banner.find() // 按照创建时间 降序
    .sort({ createdAt: -1 })
    .skip(skip)
    .limit(limit);
  res.json({
    params: req.query,
    msg: "-获取所有轮播，",
    data: r,
  });
});
// 2- 动态id根据文章id 获取文章详情，返回 接口作用，和 文章id
// get /articles/:id
router.get("/:id", async (req, res) => {
  let r = await Banner.findById(req.params.id);
  res.json({
    params: req.params,
    msg: "动态id根据文章id 获取轮播",
    data: r,
  });
});
// 3-根据文章id 删除文章 ，返回 接口作用和文章id
// delete /articles/:id
router.delete("/:id", async (req, res) => {
  let r = await Banner.findByIdAndDelete(req.params.id);
  res.json({
    params: req.params,
    msg: "根据文章id 删除轮播",
  });
});
// 4- patch-根据文章id 修改文章 ，返回 接口作用和文章id 和要修改的内容
// delete /articles/:id

router.patch("/:id", async (req, res) => {
  req.params;
  req.body;
  let r = await Banner.findByIdAndUpdate(req.params.id, req.body);
  res.json({
    params: req.params,
    body: req.body,
    msg: "-根据文章id 修改轮播 ",
  });
});
// 5- 发布文章
//  post请求    返回 接口作用和 和发布的内容 title content
//  {code:1,msg:'发布，发布的内容'}

router.post("/", async (req, res) => {
  req.body;

  let r = new Banner(req.body);
  await r.save();
  res.json({
    params: req.params,
    body: req.body,
    msg: "发布轮播 ",
  });
});

// ******3-导出文章路由中间件
module.exports = router;
